package delphorm.web.validateur;

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import delphorm.entite.questionnaire.FiltreNumerique;


public class AjouterFiltreReponseOuverteNumeriqueValidateur implements Validator {

	/* (non-Javadoc)
	 * @see org.springframework.validation.Validator#supports(java.lang.Class)
	 */
	public boolean supports(Class clazz) {
		return clazz.isAssignableFrom(FiltreNumerique.class);
	}

	public void validate(Object formulaire, Errors errors) {
		FiltreNumerique filtreNumerique = (FiltreNumerique)formulaire;
		
		if(filtreNumerique.getMaximum() == null)
		{
			errors.rejectValue("maximum","ajouterFiltreReponseOuverteNumerique.maximum.obligatoire");
		}
		if(filtreNumerique.getMinimum() == null)
		{
			errors.rejectValue("minimum","ajouterFiltreReponseOuverteNumerique.minimum.obligatoire");
		}
		if(filtreNumerique.getMaximum() != null && filtreNumerique.getMinimum() != null)
		{
			if(filtreNumerique.getMaximum().doubleValue() < filtreNumerique.getMinimum().doubleValue())
			{
				errors.rejectValue("maximum","ajouterFiltreReponseOuverteNumerique.maximum.pluspetitqueminimum");
			}
		}
		if(filtreNumerique.getType() == null)
		{
			errors.rejectValue("type","ajouterFiltreReponseOuverteNumerique.type.obligatoire");
		}	
		else
		{
			if(!filtreNumerique.getType().equals(new Character('E')) && !filtreNumerique.getType().equals(new Character('R')))
			{
				errors.rejectValue("type","ajouterFiltreReponseOuverteNumerique.type.mauvais");
			}
		}
		
		if(filtreNumerique.getFacultative() == null)
		{
			errors.rejectValue("facultative","ajouterFiltreReponseOuverteNumerique.facultative.obligatoire");
		}
		
	}

}
